---
title: 软件工程
description: ''
---



<QuestionComponent
    questionNumber={1}
    question="() 是系统分析阶段结束后得到的工作产品，（）是系统测试阶段完成后的工作产品。："
    optionGroups={[
        {
            groupName: '选项一',
            options: [
                {label: '系统设计规格说明', value: 'A'},
                {label: '系统方案建议书', value: 'B'},
                {label: '程序规格说明', value: 'C'},
                {label: '单元测试数据', value: 'D'},
            ],
        },
        {
            groupName: '选项二',
            options: [
                {label: '验收测试计划', value: 'A'},
                {label: '测试标准', value: 'B'},
                {label: '系统测试计划', value: 'C'},
                {label: '操作手册', value: 'D'},
            ],
        },
    ]}
    correctAnswers={{
        "选项一": 'B',
        "选项二": 'D',
    }}
/>

<QuestionComponent
    questionNumber={2}
    question="以下关于螺旋模型的叙述中，不正确的是（）"
    optionGroups={[
        {
            groupName: '',
            options: [
                {label: '它是风险驱动的，要求开发人员必须具有丰富的风险评估知识和经验', value: 'A'},
                {label: '它可以降低过多测试或测试不足带来的风险', value: 'B'},
                {label: '它包含维护周期，因此维护和开发之间没有本质区别', value: 'C'},
                {label: '它不适用于大型软件开发', value: 'D'},
            ],
        }
    ]}
    correctAnswers={{
        "": 'D',
    }}
    explanation=""
    direction={'vertical'}
/>

<QuestionComponent
    questionNumber={3}
    question="以下关于结构开发方法的叙述中，不正确的是（）"
    optionGroups={[
        {
            groupName: '',
            options: [
                {label: '总的指导思想是自顶向下，逐层分解', value: 'A'},
                {label: '基本原则是功能的分解和抽象', value: 'B'},
                {label: '与面向对象开发方法相比，更适合于大规模、特别复杂的项目', value: 'C'},
                {label: '特别适合于数据处理领域的项目', value: 'D'},
            ],
        }
    ]}
    correctAnswers={{
        "": 'C',
    }}
    explanation="可以使用排除法，结构化开发方法是面向数据流，自顶向下、逐层分解的，因此 ABD 都对，但目前已经逐渐被面向对象开发方法替代，因为面向对象开发方法更适合大型复杂项目。"
    direction={'vertical'}
/>

<QuestionComponent
    questionNumber={4}
    question="业务流程重组是针对企业业务流程的基本问题进行回顾，其核心思路是对业务流程的 （） 改造，BPR 过程通常以 （） 为中心。"
    optionGroups={[
        {
            groupName: '选项一',
            options: [
                {label: '增量式', value: 'A'},
                {label: '根本性', value: 'B'},
                {label: '迭代式', value: 'C'},
                {label: '保守式', value: 'D'},
            ],
        },
        {
            groupName: '选项二',
            options: [
                {label: '流程', value: 'A'},
                {label: '业务', value: 'B'},
                {label: '组织', value: 'C'},
                {label: '资源', value: 'D'},
            ],
        },
    ]}
    correctAnswers={{
        "选项一": 'B',
        "选项二": 'A',
    }}
    explanation="BPR 是对企业的业务流程进行根本性的再思考和彻底性的再设计，有三个原则：以流程为中心的原则、团队管理原则（以人为本）；以客户为导向的原则"
/>

<QuestionComponent
    questionNumber={5}
    question="自底向上的集成测试策略的优点包括（）"
    optionGroups={[
        {
            groupName: '',
            options: [
                {label: '主要的设计问题可以在测试早期处理', value: 'A'},
                {label: '不需要写驱动程序', value: 'B'},
                {label: '不需要写桩程序', value: 'C'},
                {label: '不需要进行回归测试', value: 'D'},
            ],
        }
    ]}
    correctAnswers={{
        "": 'C',
    }}
    explanation="自底向上的测试策略，需要编写底层驱动程序，一步一步向上测试；而自顶向下的测试策略，需要编写桩程序，不断向下插桩，逐步测试到底层模块。"
    direction={'vertical'}
/>

<QuestionComponent
    questionNumber={6}
    question="以下关于软件可维护性的叙述中，不正确的是“可维护性”（）"
    optionGroups={[
        {
            groupName: '',
            options: [
                {label: '是衡量软件质量的一个重要特性', value: 'A'},
                {label: '不受软件开发文档的影响', value: 'B'},
                {label: '是软件开发阶段各个时期的关键目标', value: 'C'},
                {label: '可以从可理解性、可靠性、可测试性、可行性、可移植性等方面进行度量', value: 'D'},
            ],
        }
    ]}
    correctAnswers={{
        "": 'B',
    }}
    explanation="可维护性包括软件开发过程和软件开发完成之后的过程，因此是受软件开发文档的影响的，要注意维护不仅仅是开发完成之后的工作。"
    direction={'vertical'}
/>
<QuestionComponent
    questionNumber={7}
    question="在设计软件的模块结构时，（）不能改进设计质量"
    optionGroups={[
        {
            groupName: '',
            options: [
                {label: '模块的作用范围应在其控制范围之内', value: 'A'},
                {label: '模块的大小适中', value: 'B'},
                {label: '避免或减少使用病态链接（从中部进入或访问一个模块）', value: 'C'},
                {label: '模块的功能越单纯越好', value: 'D'},
            ],
        }
    ]}
    correctAnswers={{
        "": 'D',
    }}
    explanation="ABC 描述的都是常识，D 描述的有问题，应该是模块的功能越单一越好，并非单纯。"
    direction={'vertical'}
/>

<QuestionComponent
    questionNumber={8}
    question="计算机系统 （） 可以用 MTBF/(1+MTBF)来度量，其中 MTBF 为平均失效间隔时间。"
    optionGroups={[
        {
            groupName: '',
            options: [
                {label: '可靠性', value: 'A'},
                {label: '可用性', value: 'B'},
                {label: '可维护性', value: 'C'},
                {label: '健壮性', value: 'D'},
            ],
        }
    ]}
    correctAnswers={{
        "": 'A',
    }}
    explanation="这就是可靠性的原公式，以平均失效时间 MTBF 来衡量，要理解记忆。"
/>
<QuestionComponent
    questionNumber={9}
    question="极限编程（XP）的十二个最佳实践不包括"
    optionGroups={[
        {
            groupName: '',
            options: [
                {label: '小的发布', value: 'A'},
                {label: '结对编程', value: 'B'},
                {label: '持续集成', value: 'C'},
                {label: '精心设计', value: 'D'},
            ],
        }
    ]}
    correctAnswers={{
        "": 'D',
    }}
    explanation="极限编程的十二个最佳实践分别是：计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作 40 小时、现场客户、编码标准"
/>

<QuestionComponent
    questionNumber={10}
    question="以下关于增量模型的叙述中，不正确的是 （）"
    optionGroups={[
        {
            groupName: '',
            options: [
                {label: '容易理解，管理成本低', value: 'A'},
                {label: '核心的产品往往先开发，因此经历最充分的测试', value: 'B'},
                {label: '第一个可交付版本所需要的成本低，时间少', value: 'C'},
                {label: '即使一开始用户需求不清晰，对开发进度和质量也没有影响', value: 'D'},
            ],
        }
    ]}
    correctAnswers={{
        "": 'A',
    }}
    explanation="增量模型：首先开发核心模块功能，而后与用户确认，之后在再开发此核心模块的功能，即每次开发一部分功能，并于用户需求确认，最终完成项目开发，优先级最高的服务最先交付，但由于并不是从系统整体角度规划各个模块，因此不利于模块划分。难点在于如何将客户需求划分为多个增量。与原型模式不同的是增量模型的每一次增量都可以作为独立可操作的产品，而原型的构造一般是为了演示。"
    direction={'vertical'}
/>

<QuestionComponent
    questionNumber={10}
    question="能力成熟度模型集成 （CMMI）是若干过程模型的综合和改进。连续式模型和阶段式模型都是 CMMI 提供的两种表示方式。连续式模型包括 6 个过程域能力等级，其中 （） 的共性目标是过程将可标识的输入工作产品转换为可标识的输出工作产品，以实现支持过程域的特定目标。"
    optionGroups={[
        {
            groupName: '',
            options: [
                {label: 'CLI1（已执行的）', value: 'A'},
                {label: 'CLI2（已管理的）', value: 'B'},
                {label: 'CLI3（已定义的）', value: 'C'},
                {label: 'CLI4（定量管理的）', value: 'D'},
            ],
        }
    ]}
    correctAnswers={{
        "": 'A',
    }}
    explanation="基于连续式表述的 CMMI 共有 6 个（0-5）能力等级，对应于未完成级、已执行级、已管理级、已定义级、量化管理级、优化级。每个能力等级对应到一个一般目标，以及一组一般执行方法和特定方法。能力等级 0 指未执行过程，表明过程域的一个或多个特定目标没有被满足；能力等级 1 指过程通过转化可识别的输入工作产品，产生可识别的输出工作产品，关注于过程域的特定目标的完成；能力等级 2 指过程作为已管理的过程制度化，针对单个过程实例的能力；能力等级 3 指过程作为已定义的过程制度化，关注过程的组织级标准化和部署；能力等级4指过程作为定量管理的过程制度化；能力等级5指过程作为优化的过程制度化，表明过程得到很好的执行且持续得到改进。"
    direction={'vertical'}
/>

